package cn.bouncyslime.dataStructures.linearList.linkedList;

import cn.bouncyslime.dataStructures.linearList.linkedList.entity.Node;
import lombok.extern.slf4j.Slf4j;

/**
 * 线性表的链式表示，在指定位置之前插入节点
 * 作者：张一卓
 * 创建日期：2020/9/26
 */
@Slf4j
public class ListInsert {
    public static <T> void insert(Node<T> root, int index, Node<T> element){
        Node<T> precursor = root;
        // 0 1 2 3 4
        for (int i = 0; i < index; i++){
            precursor = precursor.getNext();
        }
        element.setNext(precursor.getNext());
        precursor.setNext(element);
    }

    public static void main(String[] args) {
        Node<Integer> root = LinkedListInit.integerInit();
        LinkedListUtils.printLinkedList(root);
        Node<Integer> element = new Node<>();
        element.setData(1222222);
        insert(root, 0, element);
        LinkedListUtils.printLinkedList(root);
    }
}
